iT邦幫忙

2024 iThome 鐵人賽

DAY 8
1

Day8 常見的強化學習算法

Value-Based 及 Policy-Based

深度強化學習(Deep Reinforcement Learning, DRL)中的兩大主要方法:Model-free Approach和 Model-based Approach。

Model-free Approach

這種方法適用於無法窮舉所有可能狀態和行動的環境。根據學習策略的不同,分為兩大類:Policy-based(基於策略的方法)和 Value-based(基於價值的方法)。
image

Value-Based 方法

  • 核心概念:訓練一個Critic,負責對目前的狀況給予評價。

  • Value-Based方法的核心在於學習狀態(state)或狀態-行動(state-action)對的價值,以此來決定最佳行動。

    • 價值函數:Value-Based方法會估算價值函數,這個價值函數可以是狀態值函數(V(s))或動作-狀態值函數(Q(s, a))。
      • 狀態值函數 V(s):估算在狀態s下的預期回報。
      • 動作-狀態值函數 Q(s, a):估算在狀態s下採取行動a的預期回報。
    • 策略衍生:策略是通過價值函數間接獲得的。例如,ε-貪婪策略會根據Q值選擇行動。
    • 代表算法:
      • Q-learning(今天也會主要介紹這個算法,並在接下來的幾天說明)
      • SARSA

Policy-Based 方法

  • 核心概念:訓練一個Actor,負責執行動作。

  • Policy-Based方法直接學習一個策略(policy),而不是價值函數。這個策略決定在每個狀態下應該採取的行動。

    • 策略函數:Policy-Based方法直接學習和優化一個策略函數π(a|s),這個函數給定狀態s,輸出選擇行動a的概率。
    • 策略優化:通過最大化預期回報來優化策略。
    • 代表算法:
      • Actor-Critic方法

也可以將兩種方法結合形成 Actor-Critic 方法

  • 核心概念:結合Policy-based和Value-based方法,訓練一個Actor和一個Critic。
  • 特點:Actor負責選擇行動,Critic負責評估行動,兩者相互作用以提高學習效率和穩定性。

Q-Learning

Q-Learning 是一種強化學習(Reinforcement Learning)演算法,用於解決在一個代理(agent)與環境(environment)互動過程中,如何學習到最佳行為策略(policy)的方法,主要目的是找到一個策略,使得在長期內獲得的回報(reward)最大化。

他的公式表示如下:
https://ithelp.ithome.com.tw/upload/images/20240916/20159225YesFSZ4D1f.png

可能有人看到數學就會覺得好難,不想往下讀了,等等!!先別走,其實他沒有你想像中的那麼難,我將裡面一個符號一個符號拆開來解釋。

  • s 代表的是當前狀態。
  • a 代表的是當前行動。
  • R 是採取行動 𝑎 後得到的獎勵。
  • s' 是行動 a 後轉移到的新狀態。
  • a' 是在新狀態 s' 下的所有可能行動
  • https://ithelp.ithome.com.tw/upload/images/20240916/20159225VGHJjRd1Sa.png學習率(learning rate),決定新信息與現有信息的融合程度。
  • https://ithelp.ithome.com.tw/upload/images/20240916/201592252KArsZayt0.png折扣因子(discount factor),用來考慮未來獎勵的重要性。

他實際上會使用一個叫做Q-table的表格,來儲存每個情況下最佳的 Q-value,並根據獎勵來更新 Q-table,並逐漸學會最佳策略。

舉例說明

我們用一個簡單的遊戲來說明 Q-Learning。假設我們有一個迷宮遊戲,代理人(Agent)從起點開始,需要找到終點,並在過程中收集獎勵。迷宮中有多個位置,每個位置可以選擇向上、向下、向左或向右移動。

決策過程

在迷宮遊戲中,代理人每次移動都會進入一個新狀態,並且根據這個新狀態獲得相應的獎勵。代理人需要根據自己的經驗來做出最佳決策,以最大化累積的獎勵。

假設代理人目前在位置 (0,0),這是起點。代理人有兩個選擇:

  1. a1 向下移動到位置 (1,0)
  2. a2 向右移動到位置 (0,1)

由於代理人還沒有任何經驗,所以可以隨機選擇一個行動。假設代理人選擇向右移動到 (0,1),並在新位置 (0,1) 獲得一個小獎勵(例如 +1 分)。

現在代理人位於狀態 s1,並有兩個選擇:a1 向下移動和 a2 向右移動。假設在狀態 s1 下,選擇 a2 的獎勵比 a1 大,所以我們更新 Q 表來反映這一點。

Q表更新過程

  1. 初始化Q表
    • 在開始時,Q 表通常會被初始化為零或小的隨機值。例如:
a1 a2
s1 0 0
s2 0 0
  1. 代理人執行行動並獲得獎勵
    假設代理人從狀態 s1 開始,選擇行動 a2(向右移動),並到達新狀態 s2,在 s2 獲得獎勵 R。我們假設獎勵為 +1。

  2. 計算Q值更新

  • 透過上面提到的公式,並以具體假設數值為例:
    • https://ithelp.ithome.com.tw/upload/images/20240916/20159225azlNYSKah4.png = 0.1
    • https://ithelp.ithome.com.tw/upload/images/20240916/20159225h8xLm0YBTU.png = 0.9
  • 將數值代入公式得到https://ithelp.ithome.com.tw/upload/images/20240916/20159225sDtL0hT7za.png
  1. 更新Q表
a1 a2
s1 0 0.1
s2 0 0.1

這個過程在代理人與環境互動時會反覆進行,每次都會更新 Q 表,以使其更準確地預測每個行動的長期價值。這樣,代理人可以逐步學習如何在不同的狀態下選擇最優行動。

實際運行中,s2 可能會有其他後續的狀態,這取決於代理人的探索過程。你應該根據代理人的探索更新 Q 表,並不僅僅依賴一次獎勵來更新。

結語

今天就到這裡,明天會繼續延伸下去,希望大家可以繼續收看下去。
(為什麼這裡寫數學式這麼麻煩/images/emoticon/emoticon20.gif,原本以為寫在hackmd可以直接無痛移植過來貼上,結果好像不行。)


上一篇
[Day7] 強化式學習初探討
下一篇
[Day9] 當強化學習遇上健身房!?
系列文
深度學習的學習之旅:從理論到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言